using System;
using System.Collections;

namespace Common.Utilities.Database
{
    /// <summary>
    /// 
    /// </summary>
    public interface IColumn
    {
        #region Class Members

        /// <summary>
        /// 
        /// </summary>
        event ColumnPropertyChangedHandler PropertyChanged;


        #endregion Class Members

        #region Properties

        /// <summary>
        ///
        /// </summary>
        string Name
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        string Description
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        bool AllowNulls
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        decimal Increment
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        decimal Seed
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        string DefaultValue
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        int Scale
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        int Precision
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        int Length
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        string Size
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        string Type
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        bool IsIdentity
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        bool IsPrimaryKey
        {
            get;
            set;
        }

        /// <summary>
        ///
        /// </summary>
        bool IsNew
        {
            get;
        }

        /// <summary>
        ///
        /// </summary>
        bool IsFixedLength
        {
            get;
        }


        #endregion Properties
    }
}
